package com.xzc;

import javax.swing.*;
import java.awt.*;

/**
 * @author 徐州城
 * @version 1.0
 * 演示如何在面板上画出圆形
 */
public class DrawCircle extends JFrame{//JFrame 对应一个窗口，可以理解成是一个画框

    //定义一个面板
    private MyPanel mp = null;

    public static void main(String[] args) {
        new DrawCircle();
        System.out.println("程序退出~");
    }

    public DrawCircle(){//构造器
        //初始化一个面板
        this.mp = new MyPanel();
        //把面板放入到窗口(画框)
        this.add(mp);
        //设置窗口的大小
        this.setSize(600,600);
        //当点击窗口的小×，程序完全退出
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);//可以显示
    }
}

/*
1. 先定义一个MyPanel，继承JPanel类，话图形，就在面板上画 //Panel 画板
 */
class MyPanel extends JPanel{

    //说明
    //1. MyPanel 对象就是一个画板
    //2. Graphics g 把g理解成一支笔
    //3. Graphics 提供了很多绘图的方法
    @Override
    public void paint(Graphics g) {//paint 绘图
        super.paint(g);//调用父类的方法完成初始化.
        //System.out.println("paint被调用");
        //画出一个圆形
        //g.drawOval(100,100,100,100);

        //演示绘出不同的图形..
        //1. 画直线 drawLine(int x1,int y1,int x2,int y2)
        //g.drawLine(10,10,100,100);

        //2. 画矩形边框 drawRect(int x,int y,int width,int height)
        //g.drawRect(10,10,100,100);

        //3. 画椭圆边框 drawRect(int x,int y,int width,int height)

        //4. 填充矩形 fillRect(int x,int y,int width,int height)
        //设置画笔的颜色
//        g.setColor(Color.cyan);
//        g.fillRect(10,10,100,100);

        //5. 填充椭圆 fillOval(int x,int y,int width,int height)
//        g.setColor(Color.cyan);
//        g.fillOval(10,10,100,100);

        //6. 画图片 drawImage(image img,int x int y, ..)
        //1.获取图片资源，/ht.png 表示在该项目的根目录去获取 ht.png 图片资源
        Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/ht.png"));
        g.drawImage(image,10,10,440,293,this);

        //7. 画字符串 drawString(String str,int x,int y)
        //8. 设置画笔的字体 setFont(Font font)
        //9. 设置画笔的颜色 setColor(Color c)

    }
}